package com.crl.core
{
	import flash.events.IEventDispatcher;
	
	
	
	/**
	 * 可回收对像
	 *  
	 * 	我把可收回对像都定为可发布事件对像,因为我认为,没有事件的可收回对像应该很少.需求不是很大;
	 * @author crl
	 * 
	 */	
	public interface IPoolable extends IEventDispatcher
	{
		
		/**
		 * Gets called when an IPoolable object is retrieved from an ObjectPool
		 * 
		 *   当从池中取出时,做一些重新添加侦听等唤醒操作;
		 */
		function awaken():void;
		
		/**
		 * 必须实现抛出stateEvent.sleep事件; 
		 * 就会被回收到池时,这时,也必须做一些停止事件侦听等休眠操作;
		 */		
		function sleep():void;

	}
}